package com.furkid.service.service;

import com.furkid.service.domain.pet.Pet;
import com.furkid.service.domain.pet.PetBreed;
import com.furkid.service.domain.pet.PetType;
import com.furkid.service.domain.pet.PetWeight;
import com.github.pagehelper.PageInfo;

import java.util.List;

public interface IPetService {
    /**
     * 获取宠物列表
     *
     * @param pageNum 第几页
     * @param pageSize 一页的大小
     * @return 返回分页结果
     */
    public PageInfo<Pet> listPets(int pageNum, int pageSize);

    /**
     * 查询指定名称的宠物
     * @param pageNum 页数
     * @param pageSize
     * @param name
     * @return
     */
    public PageInfo<Pet> serachPetByName(int pageNum, int pageSize, String name);

    /**
     * 通过id查询宠物信息
     * @param petId 宠物id
     * @return 返回宠物信息
     */
    public Pet searchPetById(Long petId);

    /**
     * 获取宠物类型列表
     * @return 返回宠物类型列表
     */
    public List<PetType> petTypeList();

    /**
     * 获取宠物品种列表
     * @param petTypeId 宠物类型id
     * @return 返回宠物品种列表
     */
    public List<PetBreed> petBreedList(Integer petTypeId);

    /**
     * 添加宠物
     * @param pet 宠物信息
     * @return 返回是否成功
     */
    public boolean addPet(Pet pet);

    /**
     * 删除宠物
     * @param petId 宠物id
     */
    public void deletePetById(Long petId);

    /**
     * 获取宠物体重列表
     * @param petId 宠物id
     * @return 返回宠物体重列表
     */
    public List<PetWeight> petWeightListById(Long petId);

    /**
     * 添加宠物体重
     * @param petWeight 宠物体重信息
     */
    public void addOnePetWeight(PetWeight petWeight);

    /**
     * 修改宠物体重相关信息
     * @param petWeight 宠物体重信息
     */
    public void updateOnePetWeight(PetWeight petWeight);

    /**
     * 删除一条宠物体重记录
     * @param id 体重记录id
     * @param petId 宠物id
     */
    public void deleteOnePetWeight(Long id, Long petId);
}
